/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package administrador;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

/**
 *
 * @author daniel1.Silva
 */
public class RestaurarBodega {
    Conexion conexion;
    int bodega;
    Facturacion VentF;

    public RestaurarBodega(Conexion cEnt,int bEnt,Facturacion f){
    conexion=cEnt;
    bodega=bEnt;
    iniciaProceso();
    VentF=f;
    }

    public void iniciaProceso(){
    int opccion=0;
        opccion=JOptionPane.showConfirmDialog(VentF,"Seguro Desea Restaurar el Inventario subido en la Web?\n"
                + "IMPORTANTE:Tenga en Cuenta que si lo hace se perdera las cantidades actuales del inventario\n"
                + "y se reemplazaran por las cantidades de la bodega, se sugiere que realice un\n"
                + "respaldo de la base de datos antes de comenzar este proceso.\n"
                + "*** PELIGRO PELIGRO *** ","Alerta",0);

        if(opccion==0){

         //Establesco la conexion Web y saco todos los productos:
          String IPCliente = "174.136.152.21";// "174.136.152.21";
        String usuario = "sexyusuario";//"daniel1";
        String password = "yxes1984";
        String dbcliente = "sexylocuras";
        String puerto = "3306";
//          String IDCliente = "7";   // En el caso del identificador 1: Sexylocuras Centro (Padre Aguirre y Lamar)
                                    // Local Estadio = 2
                                    // Bodega = 3
                                    // Manta = 4
                                    // General Torres = 5
                                    // FutbolAdictos =6
                                    // Sexylocuras= 7 Azogues

          //Realizo la conexion a la base de datos cliente:
          Conexion conexionWeb = new Conexion();
          if (!conexionWeb.conectarBase(usuario, password, puerto, dbcliente, IPCliente)) {
              System.out.println("No pudo establecer la conexion primera");
             // JOptionPane.showMessageDialog(panelAct, "No se pudo establecer conexion con la base de datos del Internet !!", "Informacion", JOptionPane.WARNING_MESSAGE);

          } else {


              //Saco los productos de esta bodega:
              ResultSet resp=conexionWeb.consultarBase("SELECT * FROM `sexylocuras`.`productos_locales` where id_locales=3;");
              int filasTotales=conexionWeb.obtenerFilas(resp);
              conexion.consultarBase("START TRANSACTION;");
             String texto="";


              try {

                    resp.beforeFirst();
                    int contadorAct=0;
                    int contadorInserciones=0;

                    while(resp.next()){
                    String codigo=resp.getString(2);
                    String nombre=resp.getString(3);
                    String descripcion=resp.getString(4);
                    double precio=resp.getDouble(5);
                    int cantidad=resp.getInt(6);
                    int categoria=resp.getInt(7);


                    //Pregunto el producto existe:
                    ResultSet rs=conexion.consultarBase("SELECT * FROM producto p where cod_producto like '"+codigo+"';");
                    int filas=conexion.obtenerFilas(rs);
                    rs.beforeFirst();
                    rs.next();
                    



                    if(filas>0){
                    //Saco Cantidad Anterior y Nueva
                    int cantidadVieja=rs.getInt(5);
                    if(cantidadVieja==cantidad){}else{
                    JOptionPane.showMessageDialog(this.VentF,codigo+"|"+nombre+"|"+precio+"|"+categoria+"|"+"El valor antiguo Cant:"+cantidadVieja+" por: "+cantidad+" ","Informacion",JOptionPane.INFORMATION_MESSAGE);
                    texto=texto+codigo+"|"+nombre+"|"+precio+"|"+categoria+"|"+"El valor antiguo Cant:"+cantidadVieja+" por: "+cantidad+" \n\n ";
                    }



                        //Existe el Producto

                            //Actualizo:
                            boolean e1=conexion.actualizarBaseResp("update producto set cod_categoria="+categoria+", nombre='"+nombre+"',descripcion='"+descripcion+"',stock_total="+cantidad+",precio_normal="+precio+" where cod_producto like '"+codigo+"';");
                            boolean e2=conexion.actualizarBaseResp("update itm_bodega set cantidad="+cantidad+" where cod_producto like '"+codigo+"' and cod_bodega=3;");
                            if(e1&&e2){
                            contadorAct++;
                            }
                        }else{
                        //No existe el Producto

                            int opccion1=0;
                            opccion=JOptionPane.showConfirmDialog(VentF,"Seguro desea:insert into producto values('"+codigo+"',"+categoria+",'"+nombre+"','"+descripcion+"',"+cantidad+","+precio+",5,0.00,'2011-01-01',0.00);","Alerta",0);
                            texto=texto+"insert into producto values('"+codigo+"',"+categoria+",'"+nombre+"','"+descripcion+"',"+cantidad+","+precio+",5,0.00,'2011-01-01',0.00)"+"\n\n";
                            if(opccion1==0){
                            //Inserto:
                            boolean b1=conexion.insertarDatosR("insert into producto values('"+codigo+"',"+categoria+",'"+nombre+"','"+descripcion+"',"+cantidad+","+precio+",5,0.00,'2011-01-01',0.00);");
                            boolean b2=conexion.insertarDatosR("insert into itm_bodega values("+bodega+",'"+codigo+"',"+cantidad+",0);");

                            if(b1&&b2){
                            contadorInserciones++;
                            }

                            }

                        }

                    }

                    int total=contadorInserciones+contadorAct;
                    if(total==filasTotales){
                    //Se acctualizo exitosamente
                        conexion.consultarBase("COMMIT;");
                        JOptionPane.showMessageDialog(this.VentF,"El total de actualizaciones e inserciones exitosas son:"+total+" ","Informacion",JOptionPane.INFORMATION_MESSAGE);
                        System.out.println(texto);
                    }else{
                    //No se actualizo exisamente:

                         conexion.consultarBase("ROLLBACK;");
                         JOptionPane.showMessageDialog(this.VentF,"El total de actualizaciones e inserciones exitosas son:"+total+" de "+filasTotales+" ","Informacion",JOptionPane.INFORMATION_MESSAGE);
                         JOptionPane.showMessageDialog(this.VentF,"LA FACTURA NO SE GRABO DEBIDO A ALGUN PROBLEMA  EN LA ACTUALIZACION DE LOS PRODUCTOS O EN LA INSERCION DE LOS DETALLES  ","Informacion",JOptionPane.INFORMATION_MESSAGE);
                    }



                } catch (SQLException ex) {
                    Logger.getLogger(RestaurarBodega.class.getName()).log(Level.SEVERE, null, ex);
                }


         }


        }

    }



}
